Virtual computing environments allow multiple virtual machine (VM) guests to be run on a single physical platform and to share physical resources. Some virtual computing environments allow configuring the VMs in a way where the total number of processors designated for use by the VMs is more than the actual number of physical processors available on the host. This is referred to as CPU over-commitment, and it allows packing more VMs onto a single host. Further, virtual machines can be allocated more than one virtual CPU, allowing users to run applications that spawn multiple processes or multi-threaded application. However, configuring a virtual machine with more virtual CPUs (vCPUs) than its workload can use increased resource usage due to overhead, thereby impacting performance on heavily loaded systems. Examples of this scenario include a single-threaded workload running in a multiple vCPU virtual machine or a multi-threaded workload in a virtual machine with more vCPU than the workload can effective use. Furthermore, virtual machines are allocated CPU resources (and memory resources) at the time of deployment of the virtual machines, and changing these allocations typically involves taking a virtual machine offline, reconfiguring settings, and bringing the virtual machine back online. This process can be time-consuming to system administrators and interrupts access to services on the virtual machines.